// 封装的节流函数
export default function throttle (fn, interval = 200) {
  let last = null // 上一次发送请求的时间
  let timer = null // 定时器

  return function () {
    const th = this // 绑定 this 指向
    const args = arguments // 方法中的参数
    const now = +new Date() // 记录当前时间戳

    if (last && now - last < interval) {
      // 如果当前时间与上一次发送请求的时候小于规定发送请求的时间

      // 清空当前定时器
      clearTimeout(timer)

      // 设置定时器
      timer = setTimeout(function () {
        last = now // 记录此次发送请求的时间
        fn.apply(th, args) // 发送请求
      }, interval)
    } else {
      last = now // 记录当前时间
      fn.apply(th, args) // 发送请求
    }
  }
}
